/***
 * 快手自动刷金币脚本
 * @lastEditors  : lixian
 * @fistEditors  : lixian
 * @lastDate     : 2024-06-02
 * @firstDate    : 2024-06-27
 */

// 按照1080，1920比例屏幕执行
setScreenMetrics(1080, 1920);
home()
sleep(1000);
// 打开抖音
click("快手极速版");
console.show();
sleep(2000);
let count = rawInput('请输入要观看多少个视,频默认60', 60);
let date = new Date();
log('开始时间' + date);
let voidCount = 1;//视频观看次数
let posterCount = 0;//广告观看次数
let count_2 = 200;//广告默认次数
let 重新观看广告次数 = 1;
while (voidCount < count) {
    //模拟向下滑动
    swipe(542, 1300, 543, 400, 100);
    //观看时间控制在12到36秒内
    let randomSleep = random(12000, 36000);
    log('随机观看' + randomSleep / 1000 + '秒');
    sleep(randomSleep);
    if (getRandomLast()) {
        log('模拟感兴趣上个视频');
        //向上滑动
        swipe(device.width / 2, 500, device.width / 2, device.height - 200, 300);
        //观看时间控制在10到15秒内
        delayTime = random(10000, 15000);
        log('随机观看' + delayTime / 1000 + '秒');
        sleep(delayTime);
    }
    if (getRandomLink()) {
        log('随机点赞');
        click(1030, 1290, 1240, 1518);
    }
    if (getRandomCollection()) {
        log('随机收藏');
        click(1030, 1746, 1240, 1947);
    }
    log('下一个视频');
    voidCount++
    swipe(542, 1300, 543, 400, 100);
}
// 观看视频次数达到要求后，跳转到广告观看
if (voidCount >= count) {
    log('去看广告');
    观看广告();
}
function 观看广告() {
    if (posterCount == 0) {
        // count_2 = rawInput('还剩多少广告次数', 200);
        className("androidx.appcompat.app.ActionBar$c").desc("去赚钱").findOne().click();
    }
    sleep(2000);
    text('看广告得32万金币').findOne().click();
    let randomSleep = random(36000, 42000);
    log('随机观看' + (randomSleep / 1000) + '秒');
    sleep(randomSleep);
    back();
    sleep(1000);
    if (text('坚持退出').exists()) {
        text('坚持退出').findOne(2000).click()
    } else {
        text('放弃奖励').findOne(2000).click()
    }
    posterCount++
    console.log('广告次数' + posterCount);
    if (posterCount > count_2) {
        //带拓展
        log('脚本结束');
        console.hide();
        exit();
    } else {
        //模拟真人---重新再去看几次视频
        if (posterCount == count_2 % 11 === 0) {
            return 重新观看广告();
        }
        观看广告();
    }
}
function 重新观看广告() {
    sleep(1000);
    className("androidx.appcompat.app.ActionBar$c").desc("首页").findOne().click();
    //模拟向下滑动
    swipe(542, 1300, 543, 400, 100);
    //观看时间控制在12到36秒内
    let randomSleep = random(12000, 36000);
    log('随机观看' + randomSleep / 1000 + '秒');
    sleep(randomSleep);
    log('下一个视频');
    voidCount++
    重新观看广告次数++
    swipe(542, 1300, 543, 400, 100);
    if (重新观看广告次数 >= 6) {
        return 观看广告();
    }
    重新观看广告()
}
//下面这几个辅助函数可以整合在一起
/**
 * 控制在18%的点赞概率
 * @param {Number} event 概率
 * @returns {Boolean} 是否点赞
 */
function getRandomLink(event) {
    return Math.random() < 0.18;
}
/**
 * 控制在10%的收藏概率
 * @param {Number} event 概率
 * @returns {Boolean} 是否收藏
 */
function getRandomCollection(event) {
    return Math.random() < 0.1;
}
/**
 * 控制在32%的返回上个视频概率
 * @param {Number} event 概率
 * @returns {Boolean} 是否收藏
 */
function getRandomLast(event) {
    return Math.random() < 0.32;
}